﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bot.Domain.Bot
{
    public abstract class BotDialogflowBase
    {
        [Required]
        [MaxLength(128)]
        public string TimeZone { get; set; }
        public bool EnableLogging { get; set; }
        [Required]
        [MaxLength(128)]
        public string MatchMode { get; set; }
        [Required]
        public decimal ClassificationThreshold { get; set; }
        [Required]
        [MaxLength(128)]
        public string DisplayName { get; set; }
        [Required]
        [MaxLength(24)]
        public string DefaultLanguageCode { get; set; }
    }
    public class BotDialogflowVM: BotDialogflowBase
    {
        public string Parent { get; set; }
        public List<string> supportedLanguageCodes { get; set; }
    }
    public class BotDialogflowDto : BotDialogflowBase
    {
        [Required]
        public Guid Id { get; set; }
        [Required]
        public int SiteId { get; set; }
        [Required]
        public Guid BotId { get; set; }
        [Required]
        [MaxLength(128)]
        public string ProjectId { get; set; }
        [MaxLength(1280)]
        public string supportedLanguageCodes { get; set; }
        [Required]
        public string ProjectAuthJson { get; set; }
        public bool IsTestAccount { get; set; }
    }
    public class BotCallTimesStatisticsDto : BaseDto
    {
        [Required]
        public int SiteId { get; set; }
        [Required]
        public Guid BotId { get; set; }

        [Required]
        public string BotName { get; set; }
        [Required]
        public string ChatGuid { get; set; }

        [Required]
        public int CallType { get; set; }
        [Required]
        public DateTime CallTime { get; set; }
    }
    public class BotCallTimesStatisticsInfoDto
    {
        public string BotType { get; set; }
        [Required]
        public int SiteId { get; set; }
        [Required]
        public Guid BotId { get; set; }

        [Required]
        public string BotName { get; set; }
        [Required]
        public string ChatGuid { get; set; }

        [Required]
        public int CallType { get; set; }
        [Required]
        public DateTime CallTime { get; set; }
    }

}
